【Python】json模块解析带单引号的json字符串 | 您所在的位置:网站首页 › python 去除字符串的引号 › 【Python】json模块解析带单引号的json字符串 |
问题
python解析json时,可以用json.loads(str)来处理,但是如果json的key或者value是单引号包围,则json.loads就会报错,解决方法如下 方法一将单引号替换为双引号 s = "'key':'value'" s = s.replace('\'','\"') js = json.loads(json.dumps(eval(s))) 方法二 js = json.loads(json.dumps(eval(s)))解析: eval函数是一个很智能的函数,可以将字符串中内容包含的类型转换成那个类型,比如: a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]" print(type(a)) b = eval(a) print(type(b)) # list print(b) #[[1,2], [3,4], [5,6], [7,8], [9,0]]a是一个字符串,但是字符串里是一个list,eval之后就变成了一个list,同理,dict、json、tuple等结构可以用此类方法。 因此,在这里,eval是先将字符串转化为字典对象,然后json.dumps是将字典对象转换为json对象,json.loads又将json对象变为字典对象,所以其实可以直接eval(s)即可。 参考:https://blog.csdn.net/cc695906217/article/details/84238727 |
CopyRight 2018-2019 实验室设备网 版权所有 |